package org.gry.dy20180710;

import java.math.BigDecimal;

/**
 * 测试整形变量
 * 
 * @author gry
 *
 */
public class TestDataType {

	public static void main(String[] arge) {
		byte a = 127;
		short b = 30000;
		//int c = 7000000;
		//long d = 8000000000000l;
		
		int a1=10;
		System.out.println(a1);
		int a2= 010;//八进制以0开头
		System.out.println(a2);
		int a3 = 0x10;//十六进制0x开头
		System.out.println(a3);
		int a4 = 0b10; //二进制0b开头
		System.out.println(a4);
		
		//float q = 3.14f;
		//double q1 = 3.14;
		double q2 = 314e-2;
		
		System.out.println(q2);
		
		float d1 = 0.1f;
		double d2 = 1.0/10;
		System.out.println(d2==d1);
		
		float c1 =242352312f;
		float c2 = c1+1;
		if (c1 == c2) {
			System.out.println("c1 == c2");
		} else {
			System.out.println("c1 != c2");
		}
		System.out.println("-----------------------------");
		BigDecimal bd = BigDecimal.valueOf(1.0);
		bd = bd.subtract(BigDecimal.valueOf(0.1));
		bd = bd.subtract(BigDecimal.valueOf(0.1));
		bd = bd.subtract(BigDecimal.valueOf(0.1));
		bd = bd.subtract(BigDecimal.valueOf(0.1));
		bd = bd.subtract(BigDecimal.valueOf(0.1));
		System.out.println(bd);
		System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);
		
		BigDecimal bd2 = BigDecimal.valueOf(0.1);
		BigDecimal bd3 = BigDecimal.valueOf(1.0/10.0);
		
		System.out.println(bd2.equals(bd3));
		
		//char a7 ='t';
		//char a8 = '郭';
		char j = '\u0061';
		System.out.println(j);
	
		System.out.println('a'+'b');
		System.out.println(""+'a'+'b');
		System.out.println(""+'a'+'\n'+'b');
		System.out.println(""+'a'+'\t'+'b');
		System.out.println(""+'a'+'\''+'b');
		
		//String qw = "adc";
		
		boolean man =  true;
		
		if(man) {  //不推荐 man == true,很容易写成man = true
			System.out.println("男 的");
		}
		//byte p1 = 1;
		//int p2 = 2;
		//long p3 = 3;
		//byte p4 = p1+p2;  报错
	/*	1. 如果两个操作数有一个为Long, 则结果也为long。

		　　2. 没有long时，结果为int。即使操作数全为short，byte，结果也是int。

		　　浮点运算：

		　　3. 如果两个操作数有一个为double，则结果为double。

		　　4. 只有两个操作数都是float，则结果才为float。*/
		//float f1 = 3.14f;
		//float d4 = p1+p2;
//		float f2 = f1 + 6.2;  报错
		
		a = 3;
		b = a++;   //执行完后,b=3。先给b赋值，再自增。
		System.out.println("a="+a+"\nb="+b);
		a = 3;
		b = ++a;   //执行完后,b=4。a先自增，再给b赋值
		System.out.println("a="+a+"\nb="+b);
		
		
	}
}
